<a href="<%=uicomponent.doAsync(action, beanId, params)%>" alt="">Asynchronous</a>
The loading mask layer is deployed after an ajax-call. It aims at blocking the GUI to prevent further user actions until the the ajax-request has been completed.
However, the mask layer may need to be deactivated in instances where the portal requires user instructions before the previous instructions have been carried out.
Deactivate the ajax-loading mask
Simply enerate a script to make an asynchronous ajax-call. Use the uicomponent.doAsync() method rather than the uicomponent.event() method. For example:
<a href="<%=uicomponent.doAsync(action, beanId, params)%>" alt="">Asynchronous</a>
The doAsync() method automatically adds the following new parameter to the parameters list: asyncparam = new Parameter(AJAX_ASYNC,"true"); (AJAX_ASYNC == "ajax_async").
This request is asynchronous and the ajax-loading mask will not deployed.
An asynchronous request can still be made using the uicomponent.event(). When using this method, the asyncparam must be added manually.
The GUI will be blocked to ensure that the user can only request one action at one time and while the request seems to be synchronous, all ajax requests are always asynchronous. For further information, refer to sect-Reference_Guide-Deactivation_of_the_Ajax_Loading_Mask_Layer_-Synchronous_issue.
Most web browsers support ajax requests in two modes: Synchronous and Asynchronous. This mode is specified with a boolean bAsync parameter.
var bAsync = false; // Synchronous request.open(instance.method, instance.url, bAsync);
However, to work with browsers that do not support the Synchronous requests, bAsync is always set to true (The Ajax request will always be asynchronous).
// Asynchronous request request.open(instance.method, instance.url, true);